from django.db import models
from .user import User


PermissionModules = [
    {
        'name': '互联管理',
        'permissions': [
            {
                'code': 'connection-view',
                'name': '查看互联'
            },
            {
                'code': 'connection-manage',
                'name': '互联管理'
            },
            {
                'code': 'template-view',
                'name': '查看模版'
            },
            {
                'code': 'template-manage',
                'name': '模版管理'
            },
            {
                'code': 'model-view',
                'name': '查看模型'
            },
            {
                'code': 'model-manage',
                'name': '管理模型'
            }
        ]
    },
    {
        'name': '数据中心',
        'permissions': [
            {
                'code': 'data-center-view',
                'name': '查看'
            },
        ]
    },
    {
        'name': '企业管理',
        'permissions': [
            {
                'code': 'organization-view',
                'name': '查看企业'
            },
            {
                'code': 'organization-manage',
                'name': '企业管理'
            }
        ]
    },
    {
        'name': '应用管理',
        'permissions': [
            {
                'code': 'app-manage',
                'name': '应用管理'
            }
        ]
    },
    {
        'name': '任务调度',
        'permissions': [
            {
                'code': 'task-view',
                'name': '查看任务'
            },
            {
                'code': 'task-manage',
                'name': '任务管理'
            }
        ]
    },
    {
        'name': '系统管理',
        'permissions': [
            {
                'code': 'organization-info-manage',
                'name': '企业信息'
            },
            {
                'code': 'encrypt-manage',
                'name': '密钥管理'
            },
            {
                'code': 'user-manage',
                'name': '用户管理'
            },
            {
                'code': 'role-manage',
                'name': '角色管理'
            },
            {
                'code': 'operation-log-view',
                'name': '查看操作记录'
            }
        ]
    },
]


class Role(models.Model):
    name = models.CharField('名称', max_length=64)
    is_locked = models.BooleanField('是否锁定', default=False)
    permissions = models.JSONField('权限列表', default=list)

    class Meta:
        verbose_name = '角色'
        verbose_name_plural = '角色'
        ordering = ('id',)


class UserRole(models.Model):
    user = models.ForeignKey(User, related_name='user_roles', on_delete=models.CASCADE)
    role = models.ForeignKey(Role, related_name='user_roles', on_delete=models.CASCADE)

    class Meta:
        verbose_name = '用户-角色'
        verbose_name_plural = '用户-角色'
        ordering = ('id',)
